package org.example.course.service;

import org.example.course.common.DataGridView;
import org.example.course.domain.Course;
import org.example.course.domain.Graduation;
import org.example.course.dto.CourseModel;

import java.util.List;

/**
 * @Classname Course
 * @Description 课程
 * @Date 2020/5/8 15:55
 * @Created by
 */
public interface CourseService {

    /**
     * 分页查询
     *
     * @param courseModel
     * @return
     */
    DataGridView findPage(CourseModel courseModel);

    /**
     * 创建
     *
     * @param course
     * @return
     */
    boolean create(Course course);

    /**
     * 更新
     *
     * @param course
     * @return
     */
    boolean update(Course course);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    boolean delete(String id);

    /**
     * 更具课程ID查询选择的毕业要求
     *
     * @param id
     * @return
     */
    DataGridView findGraduation(String id);

    /**
     * 删除与毕业要求从表的关联关系
     *
     * @param graduationId
     * @param courseId
     * @return
     */
    boolean deleteGraduation(String graduationId, String courseId);

    /**
     * 更具课程ID查询未选择的毕业要求
     *
     * @param id
     * @return
     */
    DataGridView graduationSelect(String id);

    /**
     * 批量添加课程 毕业要求  关联
     *
     * @param ids
     * @param courseId
     * @return
     */
    boolean addSelectArr(Integer[] ids, String courseId);


    /**
     * 更具课程ID查询详情
     *
     * @param id
     * @return
     */
    DataGridView findDetails(String id);

    /**
     * 更具课程ID查询考核环节
     *
     * @param id
     * @return
     */
    DataGridView findCheck(String id);

    /**
     * 更具课程ID查询考核环节详情
     *
     * @param id
     * @return
     */
    DataGridView findDetailsCheck(String id);

    /**
     * 更具课程ID查询 每个考核环节的考核与评价标准 表
     *
     * @param id
     * @return
     */
    DataGridView findStandard(String id);

    /**
     * 更具课程ID查询 每个考核环节的 情况分析表 文档4-2
     *
     * @param id
     * @return
     */
    DataGridView findAnalyze(String id);

    /**
     * 最终表数据的查询 更具课程ID
     *
     * @param id
     * @return
     */
    DataGridView findConclude(String id);

    /**
     * 导入课程名  插入数据库
     * @param name
     * @return
     */
    Course insert(String name);

    /**
     * 插入毕业要求
     *
     * @param courseId
     * @param graduations
     * @return
     */
    Boolean insertGraduation(Integer courseId, List<Graduation> graduations);
}
